iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
Software Development

跟著官方文件學習Laravel, 並實作出一個會員登入系統系列 第 21

Day21 跟著官方文件學習Laravel-Encryption

  • 分享至 

  • xImage
  •  

大家好,今天要介紹 Laravel 其中一個功能'加密',我會將這個加密加入我的專案實作之中。laravel的加密服務利用 AES-256 和 AES-128 加密通過 OpenSSL 加密和解密配置一個接口,並利用MAC進行簽名,底層值一旦加密後就無法修改及竄改。

首先我們利用以下指令產出一個key

php artisan key:generate

而其中 key:generate 是使用 php 的 secure random bytes generator 來產生一個加密安全密鑰。

接下來我們就可以使用Crypt來加密你想加密的值囉,我們到之前寫好的UserService中,在註冊的name把他加密起來,讓他不要直接存在DB當中。

Crypt::encryptString(username);

先把他dd出來看吧!使用我們之前寫好的command來測試。

這邊會看到被加密過的字串,那我們把它夾到create裡面就可以囉。

User::create([
            'account' => $account,
            'password' => Hash::make($password),
            'name' => Crypt::encryptString($username),
        ]);

那我們在讀取的時候解密,改寫一下UserController裡的show()方法

public function show($id)
    {
        $user = User::select('id', 'name', 'account')->where('id', $id)->first();
        $user->name = Crypt::decryptString($user->name);
        return response()->json($user);
    }

得到以下結果

好,今天介紹加解密,明天來學習Hash!


上一篇
Day20 跟著官方文件學習Laravel-Breeze
下一篇
Day22 跟著官方文件學習Laravel-Hash
系列文
跟著官方文件學習Laravel, 並實作出一個會員登入系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言